package org.ehe.finance.receivable.domain.vo;
import cn.idev.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.ehe.common.mybatis.core.domain.BaseEntity2;
import org.ehe.finance.receivable.domain.ErpFinanceReceivable;

import java.math.BigDecimal;
import java.time.LocalDate;
/**
 * 应收账款Vo
 * @author :zhangnn
 * @className :ErpFinanceReceivableVo
 * @description: TODO
 * @date 2025-08-28 09:27:46
 */
@Data
@AutoMapper(target = ErpFinanceReceivable.class)
public class ErpFinanceReceivableVo extends BaseEntity2 {

    /**
     * 应收账款ID
     */
    @ExcelProperty(value = "应收账款ID")
    private Long id;

    /**
     * 单据编号
     */
    @ExcelProperty(value = "单据编号")
    private String billNo;

    /**
     * 客户ID
     */
    private Long customerId;

    /**
     * 客户名称
     */
    @ExcelProperty(value = "客户名称")
    private String customerName;

    /**
     * 单据日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "单据日期")
    private LocalDate billDate;

    /**
     * 单据类型:1销售发票,2其他应收
     */
    private Integer billType;

    /**
     * 单据类型名称
     */
    @ExcelProperty(value = "单据类型")
    private String billTypeName;

    /**
     * 来源单据号
     */
    @ExcelProperty(value = "来源单据号")
    private String sourceBillNo;

    /**
     * 应收总金额
     */
    @ExcelProperty(value = "应收总金额")
    private BigDecimal totalAmount;

    /**
     * 已收款金额
     */
    @ExcelProperty(value = "已收款金额")
    private BigDecimal paidAmount;

    /**
     * 未收款金额
     */
    @ExcelProperty(value = "未收款金额")
    private BigDecimal unpaidAmount;

    /**
     * 到期日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "到期日期")
    private LocalDate dueDate;

    /**
     * 币种ID
     */
    private Long currencyId;

    /**
     * 币种名称
     */
    @ExcelProperty(value = "币种")
    private String currencyName;

    /**
     * 汇率
     */
    @ExcelProperty(value = "汇率")
    private BigDecimal exchangeRate;

    /**
     * 部门ID
     */
    private Long departmentId;

    /**
     * 部门名称
     */
    @ExcelProperty(value = "部门")
    private String departmentName;

    /**
     * 业务员ID
     */
    private Long salesmanId;

    /**
     * 业务员名称
     */
    @ExcelProperty(value = "业务员")
    private String salesmanName;

    /**
     * 结算状态:1未结算,2部分结算,3已结算
     */
    private Integer settlementStatus;

    /**
     * 结算状态名称
     */
    @ExcelProperty(value = "结算状态")
    private String settlementStatusName;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 逾期天数
     */
    @ExcelProperty(value = "逾期天数")
    private Integer overdueDays;

    /**
     * 是否逾期
     */
    private Boolean isOverdue;
}
